package cn.zhfeat.hatch.rpcimpl;

import java.util.List;

import javax.annotation.Resource;

import cn.zhfeat.hatch.dto.company.CompanyDepartmentDto;
import cn.zhfeat.hatch.entity.company.CompanyDepartment;
import cn.zhfeat.hatch.rpc.IDepartmentRpcService;
import cn.zhfeat.hatch.service.IDepartmentService;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageInfo;


/**
 * @description: 部门相关rpc服务实现
 *
 * @author ZhangHao
 * @date 2018年5月10日 上午10:12:22 
 * @version 1.0.0.1
 */
@Service("departmentRpcService")
public class DepartmentRpcServiceImpl implements IDepartmentRpcService {

	@Resource
	private IDepartmentService departmentService;
	
	/**
	 * @description: 插入企业部门数据并返回自增id
	 *
	 * @param entity
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月10日 上午9:45:53 
	 * @version 1.0.0.1
	 */
	@Override
	public CompanyDepartment insertSelective(CompanyDepartment entity) {
		if(entity.getCid() == null){
			return null;
		}
		int result = departmentService.insertSelective(entity);
		if(result > 0) {
			return entity;
		}
		return null;
	}

	/**
	 * @description: 根据主键ID更新部门数据，如果id为null或updateTime为null则返回0，标识更新失败
	 *		逻辑删除也调用此方法。
	 *
	 * @param entity
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月10日 上午9:47:25 
	 * @version 1.0.0.1
	 */
	@Override
	public Integer updateSelective(CompanyDepartment entity) {
		if(entity.getId() == null || entity.getUpdateTime() == null){
			return 0;
		}
		return departmentService.updateSelective(entity);
	}

	/**
	 * @description: 企业部门查询接口，无需分页
	 *
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月10日 上午9:49:06 
	 * @version 1.0.0.1
	 */
	@Override
	public List<CompanyDepartment> findListByDto(CompanyDepartmentDto dto) {
		return departmentService.findListByDto(dto);
	}

	/**
	 * @description: 根据父部门编码查询其对应的全部子部门,无需分页
	 *
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月10日 上午10:25:25 
	 * @version 1.0.0.1
	 */
	@Override
	public List<CompanyDepartment> findListbyParentDeptId(
			CompanyDepartmentDto dto) {
		return departmentService.findListbyParentDeptId(dto);
	}

	/**
	 * 
	 * @Description: 根据条件查询部门信息
	 * 
	 * @author: ZhangHao
	 * @date:   2018年5月19日 上午9:57:18    
	 * @version 1.0.0.1
	 */
	@Override
	public CompanyDepartment getCompanyDepartment(CompanyDepartmentDto departmentDto) {
		if(departmentDto == null || departmentDto.getCid() == null) {
			return null;
		}
		return departmentService.getCompanyDepartment(departmentDto);
	}
	/**
	 * @description: 部门分页
	 *			
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月26日 上午9:52:25 
	 * @version 1.0.0.1
	 */
	@Override
	public PageInfo<CompanyDepartment> ajaxPageInfoByDto(CompanyDepartmentDto dto) {
		
		return departmentService.pageList(dto);
	}
	/**
	 * @description: 获取部门列表
	 *
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年7月21日 下午4:01:11 
	 * @version 1.0.0.1
	 */
	@Override
	public List<CompanyDepartment> listDepartment(CompanyDepartmentDto dto) {
		return departmentService.listDepartment(dto);
	}

}
